package cn.iocoder.yudao.module.digital.controller.admin.cardkeysecret.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 卡密密钥新增/修改 Request VO")
@Data
public class CardkeySecretSaveReqVO {

    @Schema(description = "卡密密钥id", example = "19179")
    private String id;

    @Schema(description = "卡密商品编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "卡密商品编号不能为空")
    private String productNo;

    @Schema(description = "领取状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "领取状态不能为空")
    private Integer claimStatus;

    @Schema(description = "领取日期", example = "1")
    private LocalDateTime claimDate;

    @Schema(description = "礼品卡id", example = "1")
    private String eGiftId;

    @Schema(description = "卡号")
    private String cardNumber;

    @Schema(description = "Code")
    private String code;

    @Schema(description = "PIN")
    private String pin;

    @Schema(description = "订单流水号")
    private String orderNo;

    @Schema(description = "用户id", example = "19904")
    private Long userId;

    @Schema(description = "来源", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "来源不能为空")
    private Integer source;

    @Schema(description = "货币代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "货币代码不能为空")
    private String currencyCode;

    @Schema(description = "面额（单位：分）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "面额（单位：分）不能为空")
    private Integer denomination;

    @Schema(description = "请求id", example = "14406")
    private String requestId;

    @Schema(description = "卡密订单id")
    private String cardOrderId;

    @Schema(description = "发卡渠道订单id")
    private String channelOrderId;

    @Schema(description = "发卡渠道内部订单id")
    private String channelInnerOrderId;

    @Schema(description = "卡账号id", example = "25125")
    private String cardAccountId;

    @Schema(description = "交易检索参考号", example = "25125")
    private String retrievalReferenceNumber;

}